package studentinformationmanagementsystem.dao;

import studentinformationmanagementsystem.entity.Student;

import java.util.List;

/**
 * @author 苗庆
 * @version 1.0
 */
public interface StudentDao {



    /**
     * 对学生信息进行添加
     * @param student  学生对象
     * @return  受影响的记录行数
     */
    int insert(Student student);


    /**
     *  根据ID更新学生信息
     * @param student  学生对象
     * @return 受影响的记录行数
     */
    int update(Student student);

    /**
     *  根据ID删除学生
     * @param student 学生ID
     * @return 受影响的记录行数
     */
    int delete(Student student);


    /**
     * 查询所有学生信息
     * @return 所有用户信息
     */
    List<Student> queryAll();


    /**
     * 根据学生ID查询学生信息
     * @param student 学生ID
     * @return 学生信息
     */
    Student queryById(Student student);


    /**
     * 根据学号即账号查询用户信息
     * @param student 学号名
     * @return 学生信息
     */
    Student queryByUsername(Student student);

    /**
     * 根据学号即账号和密码查询用户信息
     * @param student 带有学号和密码的学生信息
     * @return 学生信息
     */
    Student queryByUsernameAndPassword(Student student);


    /**
     * 查询总记录条数
     */
    Integer queryForPageTotalCount();


    /**
     * 分页查询DAO层方法
     *
     * @param begin    起始记录行数
     * @param pageSize 每页展示数量
     * @return
     */
    List<Student> queryForPageItems(int begin, int pageSize);

    /**
     * 根据学生学号、身份证号、手机号查询学生信息
     * @param student 带有学号、身份证号、联系电话的学生信息
     * @return 一个学生对象
     */
    Student queryByStudentidAndIdnumberAndPhone(Student student);
}
